/*
 * JVM_CP_Table.c
 *
 *  Created on: 02.01.2011
 *      Author: Tavin
 */
#include <stdio.h>
#include <stdlib.h>

#include "JVM_CP_Table.h"



/****************************************************************************************/
/*																						*/
/*	Function : JVM_Class_getMethodInfo						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_Method_t *JVM_CPTable_getMethodInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Method_t * tmpCPMethodRef;
	tmpCPMethodRef=(JVM_CP_Method_t*)myCpTable->constants[index-1];

	if (tmpCPMethodRef->type==CONSTANT_TYPE_METHOD_REF)
		return(tmpCPMethodRef);

	return(0);
}

/****************************************************************************************/
/*																						*/
/*	Function : JVM_Class_getNameInfo						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_Name_t *JVM_CPTable_getNameInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Name_t * tmpCPNameAndType;
	tmpCPNameAndType=(JVM_CP_Name_t*)myCpTable->constants[index-1];

	if (tmpCPNameAndType->type==CONSTANT_TYPE_NAME_AND_TYPE)
		return(tmpCPNameAndType);

	return(0);
}

/****************************************************************************************/
/*																						*/
/*	Function : JVM_CPTable_getUtf8Info						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_UTF8_t *JVM_CPTable_getUtf8Info(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_UTF8_t * tmpCPUtf8;
	tmpCPUtf8=(JVM_CP_UTF8_t*)myCpTable->constants[index-1];

	if (tmpCPUtf8->type==CONSTANT_TYPE_UTF8)
		return(tmpCPUtf8);

	return(0);
}


/****************************************************************************************/
/*																						*/
/*	Function : JVM_CPTable_getFieldInfo						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/

JVM_CP_Field_t *JVM_CPTable_getFieldInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Field_t *tmpCPFieldInfo;
	tmpCPFieldInfo=(JVM_CP_Field_t*)myCpTable->constants[index-1];

	if (tmpCPFieldInfo->type==CONSTANT_TYPE_FIELD_REF)
		return(tmpCPFieldInfo);

	return(NULL);
}



/****************************************************************************************/
/*																						*/
/*	Function : JVM_CP_Table_getInteger						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_Integer_t *JVM_CPTable_getIntegerInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Integer_t * tmpCPInteger;
	tmpCPInteger=(JVM_CP_Integer_t*)myCpTable->constants[index-1];

	if (tmpCPInteger->type==CONSTANT_TYPE_INTEGER)
		return(tmpCPInteger);

	return(0);
}


/****************************************************************************************/
/*																						*/
/*	Function : JVM_CP_Table_getLong							Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_Long_t *JVM_CPTable_getLongInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Long_t *tmpCPLong;
	tmpCPLong=(JVM_CP_Long_t*)myCpTable->constants[index-1];

	if (tmpCPLong->type==CONSTANT_TYPE_LONG)
		return(tmpCPLong);

	return(0);
}

/****************************************************************************************/
/*																						*/
/*	Function : JVM_CP_Table_getFloat						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/
JVM_CP_Float_t *JVM_CPTable_getFloatInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Float_t *tmpCPFloat;
	tmpCPFloat=(JVM_CP_Float_t*)myCpTable->constants[index-1];

	if (tmpCPFloat->type==CONSTANT_TYPE_FLOAT)
		return(tmpCPFloat);

	return(0);
}
/****************************************************************************************/
/*																						*/
/*	Function : JVM_Class_getDouble							Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.3			Status : Working   			*/
/*																						*/
/****************************************************************************************/

JVM_CP_Double_t *JVM_CPTable_getDoubleInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Double_t *tmpCPDouble;
	tmpCPDouble=(JVM_CP_Double_t*)myCpTable->constants[index-1];

	if (tmpCPDouble->type==CONSTANT_TYPE_DOUBLE)
		return(tmpCPDouble);

	return(0);
}

/****************************************************************************************/
/*																						*/
/*	Function : JVM_CPTable_getStringInfo					Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.9			Status : Working   			*/
/*																						*/
/****************************************************************************************/

JVM_CP_String_t *JVM_CPTable_getStringInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_String_t *tmpCPString;
	tmpCPString=(JVM_CP_String_t*)myCpTable->constants[index-1];

	if (tmpCPString->type==CONSTANT_TYPE_STRING)
		return(tmpCPString);

	return(0);
}



/****************************************************************************************/
/*																						*/
/*	Function : JVM_CPTable_getClassInfo						Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.1.9			Status : Working   			*/
/*																						*/
/****************************************************************************************/

JVM_CP_Class_t *JVM_CPTable_getClassInfo(JVM_CP_Table_t *myCpTable, uint16_t index)
{
	JVM_CP_Class_t *tmpCPClass;
	tmpCPClass=(JVM_CP_Class_t*)myCpTable->constants[index-1];

	if (tmpCPClass->type==CONSTANT_TYPE_CLASS_INFO)
		return(tmpCPClass);

	return(0);
}


